package com.tssunset;

import org.junit.Test;
import redis.clients.jedis.Jedis;

import java.util.List;

/**
 * @Author: TangSheng
 * @Description: Jedis，redis客户端使用
 * @Date Created in 14:24 2021/1/4
 */
public class JedisDemo {

    @Test
    public void testStr(){
        Jedis jedis = new Jedis("47.96.127.137",6379);
        jedis.ping();
        jedis.set("key1", "val1");
        jedis.set("key2", "val2");
        jedis.set("key3", "val3");
        jedis.set("count", "2");

        System.out.println("key1的值："+jedis.get("key1"));
        System.out.println("key2的值："+jedis.get("key2"));
        System.out.println("key3的值："+jedis.get("key3"));
        System.out.println("count的值："+jedis.get("count"));


        jedis.setnx("key1", "val2");
        System.out.println("键一的值，是否改变："+jedis.get("key1"));

        //判断类型
        System.out.println("count的类型 " + jedis.type("count"));

        //INCR key 将 key 中储存的数字值增一。     decr key自减同理
        jedis.incr("count");//自增一
        System.out.println("count自增后的值：" + jedis.get("count"));


        //INCRBY key increment 将 key 所储存的值加上给定的增量值（increment）。 decrby key increment自减同理
        jedis.incrBy("count", 10);
        System.out.println("count增加10后的值：" + jedis.get("count"));

        //APPEND key value 如果 key 已经存在并且是一个字符串， APPEND 命令将 value 追加到 key 原来的值的末尾。
        jedis.append("key1", "------这是追加的值");
        System.out.println("key1的值追加后："+jedis.get("key1"));


        jedis.close();
    }


    @Test
    public void testList(){
        Jedis jedis = new Jedis("47.96.127.137",6379);
        jedis.ping();

        jedis.flushDB();//清除数据库


        //左插入，头部插入,可以用作栈，先入后出
        jedis.lpush("list", "123","321","third","fourth");
        //右插入，尾部插入，可以用作消息队列，先入先出
        jedis.rpush("list", "尾部插入");


        //lrange key start stop 遍历list
        List<String> list = jedis.lrange("list", 0, -1);
        System.out.println("遍历list：");

        for (int i = 0; i < list.size(); i++) {
            System.out.println(i+"位: "+list.get(i));
        }

        //llen key 获取列表的长度
        System.out.println("list的size："+jedis.llen("list"));


        //LREM key count value 移除列表元素
        jedis.lrem("list", 0,"123");

        //LSET key index value 通过索引设置列表元素的值
        jedis.lset("list", 2, "123");


        //lrange key start stop 遍历list
        list = jedis.lrange("list", 0, -1);
        System.out.println("遍历list：");

        for (int i = 0; i < list.size(); i++) {
            System.out.println(i+"位: "+list.get(i));
        }

        //LPOP key 移出并获取列表的第一个元素
        System.out.println(jedis.lpop("list"));

        //RPOP key 移出并获取列表的最后一个元素
        System.out.println(jedis.rpop("list"));

    }

    @Test
    public void testHash(){

    }









}
